function Html_User(gui, user, date, options, message) {
  this._gui = gui;
  this._user = user;
  this._date = date;
  this._options = options;
  this._message = message;

  this._createElements();
};

Html_User.prototype._createElements = function() {
  // Data
  var user = (this._message[0] && this._message[0].d[0]) ? this._message[0].d[0] : pz_user.instance();
  if (!user.id && user.type == '') {
    user.type = UserType.array()[0];
  }
  if (user.id) {
    this._gui.account.disabled = true;
  }
  // Display
  this._gui.account.value = user.account;
  this._gui.password.value = user.password;
  this._gui.email.value = user.email;
  var types = UserType.array();
  for ( var i = 0, il = types.length; i < il; i++) {
    var tmp = types[i];
    this._gui.type.appendChild(new Option(tmp));
    if (tmp == user.type) {
      this._gui.type.selectedIndex = i;
    }
  }
  // Event
  this._gui.account.onchange = function() {
    user.account = this.value;
  };
  this._gui.password.onchange = function() {
    user._newpass = this.value;
  };
  this._gui.email.onchange = function() {
    user.email = this.value;
  };
  this._gui.type.onchange = function() {
    user.type = this.options[this.selectedIndex].text;
  };
  // Submit
  this._gui.save.onclick = function() {
    new RequestUtils()._custom('user', JSON.stringify(user), function(result, params) {
    }, {
      pos : DOMUtils.findPos(this)
    });
  };
};
